Technical Field
The present invention relates generally to computing systems, and more specifically, to query processing with bounded staleness in NoSQL databases.
Description of the Related Art
A traditional structured query language (SQL) database is a relational database in which a collection of tables of data items are organized according to a relational model. Relationships can be defined between rows of the tables. A non-structured query language (NoSQL) database stores and retrieves data in a less constrained way than an SQL database.
Data store refers to a data repository that uses a database to manage data stored in the data repository. A data store can include a plurality of computing nodes, each of which uses a database management system to manage data stored in a corresponding computing node. In recent years, scale-out data stores, referred to as NoSQL data stores, are gaining popularity for supporting high-traffic Internet applications. A NoSQL data store is a class of database management systems that do not use a relational database model. Though most of NoSQL data store do not support transactions, clients of a NoSQL data store are able to establish transactions by storing two versions (dirty and committed versions) for each data item and managing transaction states in the same NoSQL data store. However, to select some of all the committed versions that satisfied a condition, a client needs to query not only committed versions, but also dirty versions because some of dirty versions have been committed already.